import axios from 'axios';
import { ElMessage } from 'element-plus';
// 注意：不再需要导入store，因为401/403错误已由main.js中的全局响应拦截器统一处理

const API_BASE_PATH = '/api/questions';

// 通用错误处理函数 (可以考虑提取到公共 utils)
const handleApiError = (error, defaultMessage = '操作失败') => {
  console.error('Question API Error:', error);
  let message = defaultMessage;
  if (error.response) {
    const status = error.response.status;
    message = error.response.data?.message || error.response.data?.error || message;
    if (status === 401) {
      message = '认证失败，请重新登录';
      // 401错误已由全局响应拦截器处理，这里不需要再调用logout
    } else if (status === 403) {
      message = '您没有权限执行此操作';
    }
  }
  ElMessage.error(message);
  return { success: false, message, data: null };
};

/**
 * 分页查询试题列表
 * @param {object} params 查询参数 { page, size, type, difficulty, knowledgePoint }
 * @returns {Promise<object>} {success, data?, message?} data 包含 records, total 等分页信息
 */
export const getQuestionsPage = async (params = { page: 1, size: 10 }) => {
  try {
    const response = await axios.get(`${API_BASE_PATH}/page`, { params });
    // 假设后端直接返回 {success: true, data: { records: [...], total: ... }}
    if (response.data && response.data.success) {
        return response.data;
    } else {
        const message = response.data?.message || '获取试题列表响应格式不正确';
        ElMessage.error(message);
        return { success: false, data: null, message };
    }
  } catch (error) {
    return handleApiError(error, '获取试题列表失败');
  }
};

// TODO: 添加其他题目相关的 API 服务函数 (如创建、更新、删除、获取详情等) 